package com.ntd.study.coding.standards;

/**
 * 设计规约
 * @author liuwenju
 * @date 2021/3/26
 */
public class StudyDesignSpecification {

    /**
     * 1. 存储方案和底层数据结构的设计获得评审一致通过，并沉淀成为文档
     * |-- 1) 评审内容包括存储介质选型、表结构设计能否满足技术方案、存取性能和存储空间能否满足业务发 展、表或字段之间的辩证关系、字段名称、字段类型、索引等；数据结构变更（如在原有表中新增字段）也需要进行评审通过后上线
     * 2. 在需求分析阶段，如果与系统交互的 User 超过一类并且相关的 User Case 超过 5 个，使用用例图来表达更加清晰的结构化需求
     * 3. 如果某个业务对象的状态超过 3 个，使用状态图来表达并且明确状态变化的各个触发条件
     * 4. 如果系统中某个功能的调用链路上的涉及对象超过 3 个，使用时序图来表达并且明确各调用环节的输入与输出
     * 5. 如果系统中模型类超过 5 个，并且存在复杂的依赖关系，使用类图来表达并且明确类之间的关系
     * 6. 如果系统中超过 2 个对象之间存在协作关系，并且需要表示复杂的处理流程，使用活动图来表示
     * 7. 需求分析与系统设计在考虑主干功能的同时，需要充分评估异常流程与业务边界
     * 8. 类在设计与实现时要符合单一原则
     * 9. 谨慎使用继承的方式来进行扩展，优先使用聚合/组合的方式来实现
     * 10. 系统设计时，根据依赖倒置原则，尽量依赖抽象类与接口，有利于扩展与维护
     * 11. 系统设计时，注意对扩展开放，对修改闭合
     * 12. 系统设计阶段，共性业务或公共行为抽取出来公共模块、公共配置、公共类、公共方法等，避免出现重复代码或重复配置的情况
     * 13. 避免如下误解：敏捷开发 = 讲故事 + 编码 + 发布
     * 14.
     * @param args
     */
    public static void main(String[] args) {

    }
}
